package com.csyf.manager.service;

import com.csyf.manager.entity.SysRole;
import com.csyf.manager.utils.ResultEntity;
import com.csyf.manager.utils.page.JqGridVo;

import java.util.List;
import java.util.Set;

/**
 * @Author: casper
 * @Description: 角色Service
 * @Date: Created in 2018/11/19 11:13
 */
public interface SysRoleService {

    /**
     * 根据用户id查询角色集合
     * @param userId
     * @return set
     */
    Set<String> findRoleByUserId(Long userId);

    /**
     * 角色列表
     * @param vo
     * @param page
     * @param rows
     * @return
     */
    JqGridVo queryRoleList(SysRole vo, Integer page, Integer rows);

    /**
     * 添加角色
     * @param role
     * @return
     */
    int addRole(SysRole role);

    /**
     * 批量更新角色状态
     * @param roleIdsList
     * @param statusInvalid
     * @return
     */
    int updateStatusBatch(List<String> roleIdsList, Integer statusInvalid);

    /**
     * 根据角色id查询角色信息
     * @param roleId
     * @return
     */
    SysRole findById(Long roleId);

    /**
     * 根据角色id更新角色
     * @param role
     * @return
     */
    int updateByRoleId(SysRole role);

    /**
     * 根据角色id保存分配菜单
     * @param roleId
     * @param menuIdsList
     * @return
     */
    ResultEntity addAssignMenu(Long roleId, List<String> menuIdsList);

    /**
     * 根据条件查询角色列表
     * @param sysRole
     * @return
     */
    List<SysRole> selectRoles(SysRole sysRole);
}
